// 存储测试文件
import StorageUtil from './utils/storage.js'

// 测试新的存储系统
function testStorage() {
  console.log('=== 存储系统测试开始 ===')
  
  // 测试基本存储
  const testData = { name: '测试用户', id: 123 }
  
  // 使用工具类存储
  StorageUtil.set('test_user', testData)
  console.log('存储测试数据:', testData)
  
  // 使用工具类读取
  const retrievedData = StorageUtil.get('test_user')
  console.log('读取测试数据:', retrievedData)
  
  // 直接检查存储的key
  const allStorage = uni.getStorageInfoSync()
  console.log('所有存储key:', allStorage.keys)
  
  // 检查是否包含前缀
  const hasPrefix = allStorage.keys.some(key => key.startsWith('cdx_merchant_'))
  console.log('是否包含项目前缀:', hasPrefix)
  
  // 清理测试数据
  StorageUtil.remove('test_user')
  console.log('=== 存储系统测试完成 ===')
}

// 测试数据迁移
function testMigration() {
  console.log('=== 数据迁移测试开始 ===')
  
  // 模拟旧数据
  const oldData = { username: '旧用户', token: 'old_token_123' }
  uni.setStorageSync('userInfo', oldData)
  console.log('创建旧数据:', oldData)
  
  // 检查是否能从旧key读取
  const oldRead = uni.getStorageSync('userInfo')
  console.log('从旧key读取:', oldRead)
  
  // 执行迁移（模拟storeCode页面的逻辑）
  let isValidated = uni.getStorageSync('cdx_merchant_userInfo')
  if (!isValidated) {
    const oldUserInfo = uni.getStorageSync('userInfo')
    if (oldUserInfo) {
      console.log('发现旧的存储数据，正在迁移...')
      uni.setStorageSync('cdx_merchant_userInfo', oldUserInfo)
      uni.removeStorageSync('userInfo')
      isValidated = oldUserInfo
      console.log('数据迁移完成')
    }
  }
  
  // 验证迁移结果
  const migratedData = uni.getStorageSync('cdx_merchant_userInfo')
  console.log('迁移后的数据:', migratedData)
  
  // 检查旧数据是否被删除
  const oldDataAfterMigration = uni.getStorageSync('userInfo')
  console.log('迁移后旧数据是否存在:', oldDataAfterMigration)
  
  // 清理测试数据
  uni.removeStorageSync('cdx_merchant_userInfo')
  console.log('=== 数据迁移测试完成 ===')
}

// 运行测试
export function runStorageTests() {
  testStorage()
  setTimeout(() => testMigration(), 1000)
}